package com.zqz.admin.server.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authc.UsernamePasswordToken;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.web.ServerProperties;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author zqz
 * 登录接口
 * @date 2022/4/27 10:56
 */
@Api(tags = "登录")
@RestController
@RequestMapping
public class LoginController {

    @Autowired
    private ServerProperties serverProperties;


    @ApiOperation(value = "web端登陆")
    @PostMapping("/sys/login")
    //使用shiro会realm从数据源获取数据并且还有认证授权校验的相关代码 在com\zqz\admin\server\config\MyShiroRealm.java中
    public void login(String username,String password){
        //usernamePasswordToken用来存储前端传来的用户信息
        UsernamePasswordToken usernamePasswordToken = new UsernamePasswordToken(username,password);
        //
        SecurityUtils.getSubject().login(usernamePasswordToken);
        //设置shiro的session过期时间
        //通过serverProperties来设置时间，因为serverProperties表示的是服务器的配置文件,所以是获取配置文件的session设置时间
        SecurityUtils.getSubject().getSession().setTimeout(serverProperties.getServlet().getSession().getTimeout().toMillis());
    }



}
